package org.dromara.system.domain.bo;

import org.dromara.system.domain.FireWork;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 动火作业业务对象 fire_work
 *
 * @author Lion Li
 * @date 2025-09-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = FireWork.class, reverseConvertGenerate = false)
public class FireWorkBo extends BaseEntity {

    /**
     * 主键
     */
    private Long id;

    /**
     * 作业证编号
     */
    private String zyzbh;

    /**
     * 作业申请单位
     */
    private String sqdw;

    /**
     * 作业申请时间
     */
    private Date zysqsj;

    /**
     * 作业申请人
     */
    private String sqr;

    /**
     * 作业内容
     */
    private String zynr;

    /**
     * 作业位置
     */
    private String zywz;

    /**
     * 动火作业级别：1特级，2一级，3二级
     */
    private String dhzyjb;

    /**
     * 动火方式
     */
    private String dhfs;

    /**
     * 作业人员信息
     */
    @NotBlank(message = "作业人员信息不能为空", groups = { AddGroup.class, EditGroup.class })
    private String zyryxx;

    /**
     * 作业单位类型：1内部，2第三方
     */
    private String zydwlx;

    /**
     * 作业单位名称
     */
    private String zydwmc;

    /**
     * 作业负责人
     */
    private String zyfzr;

    /**
     * 作业实施开始时间
     */
    @NotNull(message = "作业实施开始时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date zysskssj;

    /**
     * 作业实施结束时间
     */
    @NotNull(message = "作业实施结束时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date zyssjssj;

    /**
     * 是否涉及其他特殊作业
     */
    @NotBlank(message = "是否涉及其他特殊作业不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sfsjqttszy;

    /**
     * 涉及的其他作业证编号
     */
    @NotBlank(message = "涉及的其他作业证编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sjqttszyzbh;

    /**
     * 风险辨识
     */
    private String fxbs;

    /**
     * 安全交底人
     */
    @NotBlank(message = "安全交底人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String aqjdr;

    /**
     * 接受交底人
     */
    @NotBlank(message = "接受交底人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jsjdr;

    /**
     * 监护人
     */
    @NotBlank(message = "监护人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jhr;

    /**
     * 当前状态：1作业前，2作业中，3作业后
     */
    private String dqzt;

    /**
     * 经度
     */
    @NotBlank(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String longitude;

    /**
     * 纬度
     */
    @NotBlank(message = "纬度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String latitude;

    /**
     * 计划开始时间
     */
    private Date startTime;

    /**
     * 计划结束时间
     */
    private Date endTime;

    /**
     * 视频国标编码
     */
    @NotBlank(message = "视频国标编码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String spgbbm;

    /**
     * 防护用品
     */
    @NotBlank(message = "防护用品不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fhyp;

    /**
     * 附件
     */
    @NotBlank(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class })
    private String attachment;


}
